package com.ddx.service;

import com.ddx.common.enums.Platform;
import com.ddx.common.exception.ResultModel;
import com.ddx.dto.UserDto;
import com.ddx.pojo.User;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

/**
 * @author dudianbo
 * @ClassName: ${CLASSNAME}
 * @Description: ${DESCRIPTION}
 * @date 2018/4/18
 */
public interface IUserService {

    /**
     * 用户登录接口
     * @param userDto
     */
    Map<String,String> login(UserDto userDto) throws Exception;
    /**
     * 用户登录接口
     * @param userDto
     */
    Map<String,String> smsLogin(UserDto userDto) throws Exception;
    /**
     * 用户注册接口
     * @param userDto
     */
    Map<String,String> register(UserDto userDto) throws Exception;
//
//    /**
//     * 找回密码接口 返回一个校验标识
//     * @param userDto
//     */
//    public String findPsd(UserDto userDto) throws Exception;
    /**
     * 重置密码接口
     * @param userDto
     */
     void resetPsd(UserDto userDto) throws Exception;
//    /**
//     * 修改密码接口
//     * @param userDto
//     */
//    public void updatePsd(UserDto userDto) throws Exception;
//    /**
//     * 修改密码接口(新)
//     * @param userDto
//     */
//    public void newUpdatePsd(UserDto userDto) throws Exception;

    /**
     * 校验用户参数
     * @param userId
     * @param token
     * @param platform
     * @throws Exception
     */
     void verifyUser(String userId, String token, Platform platform) throws Exception;

    /**
     * 注销登录
     * @param userId
     */
    void signOut(String userId);

    /**
     * 获取用户信息
     *
     * @param userId
     * @return
     */
    User getUserInfo(String userId);

    /**
     * 保存用户信息
     *
     * @param user
     */
    void saveUserInfo(User user);

    /**
     * 个人中心
     * @return
     */
    ResultModel getUserCenterInfo(String masterUserId, String guestUserId);
    
	void editUserInfo(User user)  throws Exception;

    Map<String,String> thirtLogin(Map<String,Object> map) throws Exception;

    String updateImage(String userId,MultipartFile file)  throws Exception;

    Map<String,Object> signIn(String userId);

    void realNameAuth(UserDto user);
}
